﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Text.RegularExpressions;
using System.IO;

namespace QuickGraph.Graphviz
{
    using Dot;

    public sealed class FileDotEngine : IDotEngine
    {
        public string Run(GraphvizImageType imageType, string dot, string outputFileName)
        {
            string output = outputFileName;
            FixDot(ref dot);
            File.WriteAllText(output, dot);
            return output;
        }

        /// <summary>
        /// Починить некоторые проблемы со свойствами graph
        /// </summary>
        public void FixDot(ref string dot)
        {
            /// запятые в качестве разделителя заменить на точку
            dot = Regex.Replace(dot, @"=(?<d1>\d+)\,(?<d2>\d+)", "=\"${d1}.${d2}\"");

            /// concentrateD заменить на concentrate
            dot = dot
                .Replace("concentrated=true", "concentrate=true")
                ;
        }
    }
}
